package dfbz.异常;
/*
* 处理异常的两种方式
*  1、抛异常  throw 关键字
*    格式:
*        throw new xxxException("异常产生的原因")；
*    注意事项:
*       1.throw关键字必须写在方法中
*       2.new的异常对象必须是Exception 或者是Exception子类对象
*       3.如果我们抛了指定异常，必须要处理:
*         3.1 如果抛出的是运行时异常，可以不处理，默认交给jvm处理。jvm处理方式，以红色字体将异常信息(类型，原因，位置)打印在控制台
*         3.2 如果抛出时编译器异常，就必须处理这个异常。要么throws，要么try/catch
*  throws:声明异常:
*      当方法的内部抛出了异常，我们就必须处理这个异常，可以使用throws声明这个异常（将异常抛出调用者去处理）
*      格式:
*         修饰符 返回值类型  方法名（） throws异常名称{}
*      注意事项：
*          1、可以声明多个异常，使用逗号隔开。
*          2、方法内部抛出了多个异常，可以声明父类异常。
*          3、调用一个声明异常的方法，那调用者所在的方法就必须处理这个异常。
*
*
*
*
*
*
*
*
*
* */

import java.io.IOException;

public class test03 {
    public static void main(String[] args) {
        demo01("a.txt");
    }

    private static void demo01(String s){ //向上抛给main
        if(!s.endsWith("txt")){
            try {
                throw new IOException("文件格式错误");
            } catch (IOException e) {
                e.printStackTrace();//打印异常详细信息
                e.getMessage();//打印错误原因
                System.out.println(e);//一toString
            }
        }
    }
}
